package com.company.www;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import com.sun.xml.internal.bind.v2.runtime.output.NamespaceContextImpl;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/*
4、使用dom4j或jdom解析products.xml
product为商品信息节点，
discount表示是否折扣，如果是折扣商品，打七折；
manufacturer是生产厂家；
productno为商品编号，
name为商品名称，
price为商品单价，
unit是计价单位，
stockcount是库存量。
1：读取products.xml中的商品信息，输出。
2：查找商品信息：根据输入的商品号，输出对应的商品信息。
3：修改products.xml，输入商品编号（productno）和库存数量，
修改对应商品的数量（stockcount）；没有找到商品号，给出错误提示消息。
 */

public class HomeWork4 {
	
	static Document document = null;
	
	//遍历所有信息
	public static void show() {
		//遍历所有的products.xml文件
		Element element = document.getRootElement();
		Iterator it = element.elementIterator();
		//注意每次只能得到根目录的第一级子目录
		while (it.hasNext()) {
			Element ele = (Element) it.next();
			System.out.print(ele.getName() + " ");
			List<Attribute> list = ele.attributes();
			for (Attribute S : list) {
				System.out.println(S.getName() + ":" + S.getValue());
			}
			//注意每次只能得到根目录的第一级子目录
			Iterator child = ele.elementIterator();
			while (child.hasNext()) {
				Element childele = (Element) child.next();
				System.out.println(childele.getName() + ":" + childele.getText());
			}
			System.out.println("****************************");
		}
	}
	
	public static void serach(String nameId) {
		Element root = document.getRootElement();
		boolean isfind = false;
		for (Iterator rootit = root.elementIterator(); rootit.hasNext(); ) {
			Element ele = (Element) rootit.next();
			List<Attribute> list = ele.attributes();
			for (Attribute S : list) {
				if (S.getText().equals(nameId)) {
					System.out.println(S.getName() + ":" + S.getValue());
					Iterator child = ele.elementIterator();
					while (child.hasNext()) {
						Element childele = (Element) child.next();
						System.out.println(childele.getName() + ":" + childele.getText());
					}
					isfind = true;
					return;
				}
			}
		}
		while (!isfind) {
			System.out.println("没有找到这个商品!!");
			return;
		}
	}
	
	public static void modfiy(String product) {
		Element root = document.getRootElement();
		boolean isfind = false;
		for (Iterator rootit = root.elementIterator(); rootit.hasNext(); ) {
			Element ele = (Element) rootit.next();
			for (Iterator child = ele.elementIterator(); child.hasNext(); ) {
				Element childele = (Element) child.next();
				if (childele.getTextTrim().equals(product)) {
					System.out.println("设置成功");
					childele.setText("0");
					isfind = true;
					break;
				}
			}
		}
		while (!isfind) {
			System.out.println("没有找到这个商品!!");
			return;
		}
	}
	
	public static void main(String[] args) {
		try {//加载saxReader对象，得到xml文件
			SAXReader saxReader = new SAXReader();
			document = saxReader.read(new File("src/products.xml"));
			show();
			Scanner input = new Scanner(System.in);
			System.out.println("请您输入商品号");
			String name = input.next();
			serach(name);
			System.out.println("请您输入需要修改的商品号");
			String name2 = input.next();
			modfiy(name2);
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
}
